<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>minid.utils</title>
  <link href="./css/style.css" rel="stylesheet" type="text/css"/>
  <!-- <link href="./img/icon.png" rel="icon" type="image/png"/> -->
  <script type="text/javascript" src="./js/jquery.js"></script>
  <script type="text/javascript" src="./js/modules.js"></script>
  <script type="text/javascript" src="./js/quicksearch.js"></script>
  <script type="text/javascript" src="./js/navigation.js"></script>
  <!--<script type="text/javascript" src="./js/jquery.treeview.js"></script>-->
  <script type="text/javascript">
    var g_moduleFQN = "minid.utils";
  </script>
  
</head>
<body>
<div id="content">
  <h1><a href="./htmlsrc/minid.utils.html" class="symbol">minid.utils</a></h1>
  
<div class="summary">A module holding a variety of utility functions used throughout MiniD.  This
module doesn't (and shouldn't) depend on the rest of the library in any way,
and as such can't hold implementation-specific functionality.  For that, look
in the minid.misc module.</div>
<p class="sec_header">License:</p>Copyright (c) 2008 Jarrett Billingsley
<p class="bl"/>
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the
use of this software.
<p class="bl"/>
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
<p class="bl"/>
    1. The origin of this software must not be misrepresented; you must not
	claim that you wrote the original software. If you use this software in a
	product, an acknowledgment in the product documentation would be
	appreciated but is not required.
<p class="bl"/>
    2. Altered source versions must be plainly marked as such, and must not
	be misrepresented as being the original software.
<p class="bl"/>
    3. This notice may not be removed or altered from any source distribution.
<dl>
<dt class="decl">bool <a class="symbol _function" name="startsWith" href="./htmlsrc/minid.utils.html#L40" kind="function" beg="40" end="43">startsWith</a><span class="tparams">(T)</span><span class="params">(T[] <em>string</em>, T[] <em>pattern</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#startsWith" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L40">#</a></dt>
<dd class="ddef">
<div class="summary">See if a string starts with another string.  Useful.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="endsWith" href="./htmlsrc/minid.utils.html#L48" kind="function" beg="48" end="51">endsWith</a><span class="tparams">(T)</span><span class="params">(T[] <em>string</em>, T[] <em>pattern</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#endsWith" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L48">#</a></dt>
<dd class="ddef">
<div class="summary">See if a string ends with another string.  Also useful.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="contains" href="./htmlsrc/minid.utils.html#L56" kind="function" beg="56" end="59">contains</a><span class="tparams">(T)</span><span class="params">(T[] <em>arr</em>, T <em>elem</em>)</span>; <a title="Permalink to this symbol" href="#contains" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L56">#</a></dt>
<dd class="ddef">
<div class="summary">See if an array contains an item.</div></dd>
<dt class="decl">int <a class="symbol _function" name="Compare3" href="./htmlsrc/minid.utils.html#L64" kind="function" beg="64" end="67">Compare3</a><span class="tparams">(T)</span><span class="params">(T <em>a</em>, T <em>b</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Compare3" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L64">#</a></dt>
<dd class="ddef">
<div class="summary">Compare two values, a and b, using &lt; and &gt;.  Returns -1 if a &lt; b, 1 if a &gt; b, and 0 otherwise.</div></dd>
<dt class="decl">int <a class="symbol _function" name="scmp" href="./htmlsrc/minid.utils.html#L72" kind="function" beg="72" end="85">scmp</a><span class="params">(char[] <em>s1</em>, char[] <em>s2</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#scmp" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L72">#</a></dt>
<dd class="ddef">
<div class="summary">Compares char[] strings stupidly (just by character value, not lexicographically).</div></dd>
<dt class="decl">size_t <a class="symbol _function" name="verify" href="./htmlsrc/minid.utils.html#L90" kind="function" beg="90" end="98">verify</a><span class="params">(char[] <em>s</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#verify" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L90">#</a></dt>
<dd class="ddef">
<div class="summary">Verifies that the given UTF-8 string is well-formed and returns the length in codepoints.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="uniSlice" href="./htmlsrc/minid.utils.html#L103" kind="function" beg="103" end="130">uniSlice</a><span class="params">(char[] <em>s</em>, size_t <em>lo</em>, size_t <em>hi</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#uniSlice" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L103">#</a></dt>
<dd class="ddef">
<div class="summary">Slice a UTF-8 string using codepoint indices.</div></dd>
<dt class="decl">dchar <a class="symbol _function" name="uniCharAt" href="./htmlsrc/minid.utils.html#L135" kind="function" beg="135" end="147">uniCharAt</a><span class="params">(char[] <em>s</em>, size_t <em>idx</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#uniCharAt" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L135">#</a></dt>
<dd class="ddef">
<div class="summary">Get the character in a UTF-8 string at the given codepoint index.</div></dd>
<dt class="decl">size_t <a class="symbol _function" name="uniCPIdxToByte" href="./htmlsrc/minid.utils.html#L152" kind="function" beg="152" end="164">uniCPIdxToByte</a><span class="params">(char[] <em>s</em>, size_t <em>fake</em>)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#uniCPIdxToByte" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L152">#</a></dt>
<dd class="ddef">
<div class="summary">Convert a codepoint index into a UTF-8 string into a byte index.</div></dd>
<dt class="decl">template <a class="symbol _template" name="isStringType" href="./htmlsrc/minid.utils.html#L169" kind="template" beg="169" end="172">isStringType</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#isStringType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L169">#</a></dt>
<dd class="ddef">
<div class="summary">Metafunction to see if a given type is one of char[], wchar[] or dchar[].</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="isStringType.isStringType" href="./htmlsrc/minid.utils.html#L171" kind="variable" beg="171" end="171">isStringType</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#isStringType.isStringType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L171">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="isArrayType" href="./htmlsrc/minid.utils.html#L177" kind="template" beg="177" end="180">isArrayType</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#isArrayType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L177">#</a></dt>
<dd class="ddef">
<div class="summary">Sees if a type is an array.</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="isArrayType.isArrayType" href="./htmlsrc/minid.utils.html#L179" kind="variable" beg="179" end="179">isArrayType</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#isArrayType.isArrayType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L179">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="isArrayType:2" href="./htmlsrc/minid.utils.html#L182" kind="template" beg="182" end="185">isArrayType</a><span class="tparams">(T : T[])</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#isArrayType:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L182">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">bool <a class="symbol _variable" name="isArrayType.isArrayType:2" href="./htmlsrc/minid.utils.html#L184" kind="variable" beg="184" end="184">isArrayType</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#isArrayType.isArrayType:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L184">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="isAAType" href="./htmlsrc/minid.utils.html#L190" kind="template" beg="190" end="193">isAAType</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#isAAType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L190">#</a></dt>
<dd class="ddef">
<div class="summary">Sees if a type is an associative array.</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="isAAType.isAAType" href="./htmlsrc/minid.utils.html#L192" kind="variable" beg="192" end="192">isAAType</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#isAAType.isAAType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L192">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="realType" href="./htmlsrc/minid.utils.html#L198" kind="template" beg="198" end="204">realType</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#realType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L198">#</a></dt>
<dd class="ddef">
<div class="summary">Get to the bottom of any chain of typedefs!  Returns the first non-typedef'ed type.</div>
<dl>
<dt class="decl">alias realType!(Base) <a class="symbol _alias" name="realType.realType" href="./htmlsrc/minid.utils.html#L201" kind="alias" beg="201" end="201">realType</a>; <a title="Permalink to this symbol" href="#realType.realType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L201">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl"><a class="symbol _unittest" name="unittest" href="./htmlsrc/minid.utils.html#L206" kind="unittest" beg="206" end="225">unittest</a>; <a title="Permalink to this symbol" href="#unittest" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L206">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">template <a class="symbol _template" name="FOURCC" href="./htmlsrc/minid.utils.html#L230" kind="template" beg="230" end="234">FOURCC</a><span class="tparams">(char[] name)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FOURCC" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L230">#</a></dt>
<dd class="ddef">
<div class="summary">Make a FOURCC code out of a four-character string.  This is I guess for little-endian platforms..</div>
<dl>
<dt class="decl">uint <a class="symbol _variable" name="FOURCC.FOURCC" href="./htmlsrc/minid.utils.html#L233" kind="variable" beg="233" end="233">FOURCC</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#FOURCC.FOURCC" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L233">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="MakeVersion" href="./htmlsrc/minid.utils.html#L239" kind="template" beg="239" end="242">MakeVersion</a><span class="tparams">(uint major, uint minor)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MakeVersion" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L239">#</a></dt>
<dd class="ddef">
<div class="summary">Make a version with the major number in the upper 16 bits and the minor in the lower 16 bits.</div>
<dl>
<dt class="decl">uint <a class="symbol _variable" name="MakeVersion.MakeVersion" href="./htmlsrc/minid.utils.html#L241" kind="variable" beg="241" end="241">MakeVersion</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#MakeVersion.MakeVersion" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L241">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="NameOfFunc" href="./htmlsrc/minid.utils.html#L247" kind="template" beg="247" end="253">NameOfFunc</a><span class="tparams">(alias f)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NameOfFunc" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L247">#</a></dt>
<dd class="ddef">
<div class="summary">Gets the name of a function alias.</div>
</dd>
<dt class="decl">template <a class="symbol _template" name="QSort" href="./htmlsrc/minid.utils.html#L266" kind="template" beg="266" end="279">QSort</a><span class="tparams">(alias Pred, List...)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#QSort" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L266">#</a></dt>
<dd class="ddef">
<div class="summary">Given a predicate template and a tuple, sorts the tuple.  I'm not sure how quick it is, but it's probably fast enough
for sorting most tuples, which hopefully won't be that long.  The predicate template should take two parameters of the
same type as the tuple's elements, and return &lt;0 for A &lt; B, 0 for A == B, and &gt;0 for A &gt; B (just like opCmp).</div>
<dl>
<dt class="decl">alias List <a class="symbol _alias" name="QSort.QSort" href="./htmlsrc/minid.utils.html#L269" kind="alias" beg="269" end="269">QSort</a>; <a title="Permalink to this symbol" href="#QSort.QSort" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L269">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="QSort_less" href="./htmlsrc/minid.utils.html#L281" kind="template" beg="281" end="289">QSort_less</a><span class="tparams">(alias Pred, List...)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#QSort_less" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L281">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">alias Tuple!() <a class="symbol _alias" name="QSort_less.QSort_less" href="./htmlsrc/minid.utils.html#L284" kind="alias" beg="284" end="284">QSort_less</a>; <a title="Permalink to this symbol" href="#QSort_less.QSort_less" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L284">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="QSort_equal" href="./htmlsrc/minid.utils.html#L291" kind="template" beg="291" end="299">QSort_equal</a><span class="tparams">(alias Pred, List...)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#QSort_equal" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L291">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">alias Tuple!() <a class="symbol _alias" name="QSort_equal.QSort_equal" href="./htmlsrc/minid.utils.html#L294" kind="alias" beg="294" end="294">QSort_equal</a>; <a title="Permalink to this symbol" href="#QSort_equal.QSort_equal" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L294">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="QSort_greater" href="./htmlsrc/minid.utils.html#L301" kind="template" beg="301" end="309">QSort_greater</a><span class="tparams">(alias Pred, List...)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#QSort_greater" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L301">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">alias Tuple!() <a class="symbol _alias" name="QSort_greater.QSort_greater" href="./htmlsrc/minid.utils.html#L304" kind="alias" beg="304" end="304">QSort_greater</a>; <a title="Permalink to this symbol" href="#QSort_greater.QSort_greater" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L304">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="isExpressionTuple" href="./htmlsrc/minid.utils.html#L315" kind="template" beg="315" end="321">isExpressionTuple</a><span class="tparams">(T...)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#isExpressionTuple" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L315">#</a></dt>
<dd class="ddef">
<div class="summary">A useful template that somehow is in Phobos but no Tango.  Sees if a tuple is composed
entirely of expressions or aliases.</div>
<dl>
<dt class="decl">bool <a class="symbol _variable" name="isExpressionTuple.isExpressionTuple" href="./htmlsrc/minid.utils.html#L318" kind="variable" beg="318" end="318">isExpressionTuple</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#isExpressionTuple.isExpressionTuple" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L318">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="FieldNames" href="./htmlsrc/minid.utils.html#L331" kind="template" beg="331" end="337">FieldNames</a><span class="tparams">(S, int idx = 0)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#FieldNames" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L331">#</a></dt>
<dd class="ddef">
<div class="summary">For a given struct, gets a tuple of the names of its fields.</div>
I have absolutely no idea if what I'm doing here is in any way legal.  I more or less discovered
that the compiler gives access to this info in odd cases, and am just exploiting that.  It would
be fantastic if the compiler would just tell us these things, but alas, we have to rely on
seemingly-buggy undefined behavior.  Sigh.
<dl>
<dt class="decl">alias Tuple!() <a class="symbol _alias" name="FieldNames.FieldNames" href="./htmlsrc/minid.utils.html#L334" kind="alias" beg="334" end="334">FieldNames</a>; <a title="Permalink to this symbol" href="#FieldNames.FieldNames" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L334">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="GetLastName" href="./htmlsrc/minid.utils.html#L339" kind="template" beg="339" end="347">GetLastName</a><span class="tparams">(char[] fullName, int idx = fullName.length - 1)</span>; <span class="attrs">[<span class="prot">package</span>]</span> <a title="Permalink to this symbol" href="#GetLastName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L339">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="GetLastName.GetLastName" href="./htmlsrc/minid.utils.html#L342" kind="variable" beg="342" end="342">GetLastName</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#GetLastName.GetLastName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L342">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="MinArgs" href="./htmlsrc/minid.utils.html#L355" kind="template" beg="355" end="358">MinArgs</a><span class="tparams">(alias func)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#MinArgs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L355">#</a></dt>
<dd class="ddef">
<div class="summary">Given an alias to a function, this will give the minimum legal number of arguments it can be called with.
Even works for aliases to class methods.  Note, however, that this isn't smart enough to detect the difference
between, say, "void foo(int x, int y = 10)" and "void foo(int x) ... void foo(int x, int y)".  There might
be a difference, though, so be cautions.</div>
<dl>
<dt class="decl">uint <a class="symbol _variable" name="MinArgs.MinArgs" href="./htmlsrc/minid.utils.html#L357" kind="variable" beg="357" end="357">MinArgs</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#MinArgs.MinArgs" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L357">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="MinArgsImpl" href="./htmlsrc/minid.utils.html#L360" kind="template" beg="360" end="368">MinArgsImpl</a><span class="tparams">(alias func, int index, Args...)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#MinArgsImpl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L360">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">uint <a class="symbol _variable" name="MinArgsImpl.MinArgsImpl" href="./htmlsrc/minid.utils.html#L363" kind="variable" beg="363" end="363">MinArgsImpl</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#MinArgsImpl.MinArgsImpl" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L363">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="InitsOf" href="./htmlsrc/minid.utils.html#L373" kind="template" beg="373" end="379">InitsOf</a><span class="tparams">(T...)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#InitsOf" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L373">#</a></dt>
<dd class="ddef">
<div class="summary">Given a type tuple, this will give an expression tuple of all the .init values for each type.</div>
<dl>
<dt class="decl">alias Tuple!() <a class="symbol _alias" name="InitsOf.InitsOf" href="./htmlsrc/minid.utils.html#L376" kind="alias" beg="376" end="376">InitsOf</a>; <a title="Permalink to this symbol" href="#InitsOf.InitsOf" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L376">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">T <a class="symbol _function" name="InitOf_shim" href="./htmlsrc/minid.utils.html#L382" kind="function" beg="382" end="386">InitOf_shim</a><span class="tparams">(T)</span><span class="params">()</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#InitOf_shim" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L382">#</a></dt>
<dd class="ddef"></dd>
<dt class="decl">template <a class="symbol _template" name="InitOf" href="./htmlsrc/minid.utils.html#L390" kind="template" beg="390" end="396">InitOf</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#InitOf" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L390">#</a></dt>
<dd class="ddef">
<dl>
<dt class="decl">alias Tuple!(InitOf_shim!(T)()) <a class="symbol _alias" name="InitOf.InitOf" href="./htmlsrc/minid.utils.html#L393" kind="alias" beg="393" end="393">InitOf</a>; <a title="Permalink to this symbol" href="#InitOf.InitOf" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L393">#</a></dt>
<dd class="ddef"></dd></dl></dd>
<dt class="decl">template <a class="symbol _template" name="NameOfType" href="./htmlsrc/minid.utils.html#L403" kind="template" beg="403" end="406">NameOfType</a><span class="tparams">(T)</span>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#NameOfType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L403">#</a></dt>
<dd class="ddef">
<div class="summary">Given a class or struct type, gets its name.  This really only exists to mask potential oddities with the
way the compiler reports this info (for example, DMD used to insert a space before struct names, but that
no longer seems to happen..).</div>
<dl>
<dt class="decl">char[] <a class="symbol _variable" name="NameOfType.NameOfType" href="./htmlsrc/minid.utils.html#L405" kind="variable" beg="405" end="405">NameOfType</a>; <span class="attrs">[<span class="stc">const</span>]</span> <a title="Permalink to this symbol" href="#NameOfType.NameOfType" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/minid.utils.html#L405">#</a></dt>
<dd class="ddef"></dd></dl></dd></dl>
</div>
<div id="footer">
  <p></p>
  <p>Page generated by <a href="http://code.google.com/p/dil">dil</a> on Fri Dec 26 03:29:26 2008. Rendered by <a href="http://code.google.com/p/dil/wiki/Kandil">kandil</a>.</p>
</div>
</body>
</html>